package com.qqtech.qquan.im.service;

import com.qqtech.core.frame.service.BaseService;
import com.qqtech.qquan.im.enums.ImUserStatusEnum;
import com.qqtech.qquan.im.model.ImUser;
import com.qqtech.qquan.im.model.ImUserVo;

public interface ImUserService extends BaseService<ImUser> {

	/**
	 * 添加一个IM用户
	 * @param userId
	 * @param imNickName
	 * @return
	 */
	public Integer addImUser(Integer userId, String imNickName);
	
	/**
	 * 删除一个IM用户
	 * @param userId
	 * @return
	 */
	public Integer deleteImUser(Integer userId);
	
	/**
	 * 根据userId查询一个IM用户
	 * @param userId
	 * @return
	 */
	public ImUserVo getByUserId(Integer userId);
	
	/**
	 * 根据imId查询一个IM用户
	 * @param imId
	 * @return
	 */
	public ImUserVo getByImId(String imId);
	
	/**
	 * 查询im用户状态
	 * @param userId
	 * @return
	 */
	public ImUserStatusEnum getImUserStatus(Integer userId);
	
	/**
	 * 强制IM用户下线
	 * @param userId
	 */
	public boolean forceImUserOffLine(String userImId);

	/**
	 * 从im_user表里同步一个用户到环信服务器
	 * @param imUserId
	 * @param imPassWord
	 * @param imNickName
	 * @return
	 */
	Integer syncImUser2HuanXin(String imUserId, String imPassWord, String imNickName);
}